package com.wh.wisdomsite.xbox.utils.json;

import org.json.JSONArray;
import org.json.JSONObject;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * JSON工具类(org.json的JSON解析类)
 * @Package com.wh.wisdomsite.xbox.utils.json
 * @author 谢泽鹏
 * @date 2014年10月8日 下午4:02:14
 * @Copyright 个人版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2014
 * @version V1.0
 */
public class JsonUtil_Org {


    private static final Log logger = LogFactory.getLog(JsonUtil_Org.class);

    /**
     * 通过JSONObjcet的Key获来获取Value(org.json)
     * @param jsonObject 对象
     * @param key        key值
     * @return String    返回值
     */
    public static String getValueByKey(JSONObject jsonObject, String key) {
        String vaule = null;
        try {
            if(null != jsonObject){
                if(jsonObject.toString().contains(key)){
                    vaule = jsonObject.getString(key);
                }
            }
        } catch (org.json.JSONException e) {
            e.printStackTrace();
            logger.error("getValueByKey->>参数" + key + "不存在" + e.getMessage());
        }
            return vaule;
    }


    /**
     * 通过JSONObject的Key来获取JSONArray数组(org.json)
     * @param jsonObject  对象
     * @param key		  key值
     * @return JSONArray  返回对象
     */
    public static JSONArray getJsonArrayByKey(JSONObject jsonObject, String key){
        JSONArray jsonArray = null;
        try {
            jsonArray = jsonObject.getJSONArray(key);
        } catch (org.json.JSONException e) {
            e.printStackTrace();
            logger.error("getJsonArrayByKey->>参数" + key + "不存在" +  e.getMessage());
        }
            return jsonArray;
    }


    /**
     * 返回成功(org.json)
     * @param message
     * @return
     */
    public static String returnTrue(String message) {
        JSONObject jsonObject = null;
        try {
            jsonObject = new JSONObject();
            jsonObject.put("code", "PC_200");
            jsonObject.put("message", message);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("returnTrue->>Exception" + e.getMessage());
            return null;
        }
            return jsonObject.toString();
    }

    /**
     * 返回成功(org.json)
     * @param message
     * @return
     */
    public static String returnTrue(String message, Object object)  {
        JSONObject jsonObject = null;
        try{
            jsonObject = new JSONObject();
            jsonObject.put("success", true);
            jsonObject.put("data", object);
            jsonObject.put("msg", message);
        } catch (Exception e){
            e.printStackTrace();
            logger.error("returnTrue->>Exception" + e.getMessage());
            return null;
        }
        return jsonObject.toString();
    }


    /***
     * 返回状态码(org.json)
     * @param status 返回状态，1是（通过），2否（不通过）,3后台出现异常
     * @param message 附带的消息
     * @return
     * @throws org.json.JSONException
     */
    public static String returnStatus(Integer status, String message) {
        JSONObject jsonObject = null;
        try{
            jsonObject = new JSONObject();
            jsonObject.put("status", status);
            jsonObject.put("msg", message);
        } catch (Exception e){
            e.printStackTrace();
            logger.error("returnStatus->>Exception" + e.getMessage());
            return null;
        }
        return jsonObject.toString();
    }


    /**
     * 返回失败(org.json)
     * @param message
     * @return
     */
    public static String returnFalse(String message) {
        JSONObject jsonObject = null;
        try {
            jsonObject = new JSONObject();
            jsonObject.put("code", "PC_002");
            jsonObject.put("message", message);
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("returnFalse->>Exception" + e.getMessage());
            return null;
        }
        return jsonObject.toString();
    }


}
